Retrieval Augmented Generation - LLMs mit firmeninternen Daten anreichern

Im Rahmen dieses Projekts wurde eine Anwendung zur Retrieval Augmented Generation (RAG) entwickelt. Ziel der Anwendung ist es, Large Language Models (LLMs) mit firmeninternen Daten anzureichern, um präzisere und kontextrelevante Antworten auf Anfragen zu liefern. Dazu wurden moderne Technologien wie Haystack, AWS, und Qdrant eingesetzt.
RAG: Retrieval Augmented Generation #
Die Grundlage des Projekts war die Entwicklung von Retrieval Augmented Generation (RAG), einer Methode, bei der ein LLM mit externen Informationen angereichert wird. Firmeninterne Dokumente und Datenbanken sollen so leicht zu gänglich und nutzerfreundlich aufbereitet gemacht werden. Dabei wurde der Dokumenteninhalt analysiert, in einen Vektorraum eingebettet und anschließend von den Modellen abgerufen, um informierte Antworten zu generieren.
Technologie-Stack #
Haystack #
Das Haystack-Framework wurde verwendet, um das RAG-System aufzubauen. Es bietet eine leichte Entwicklung an, da es alle nötigen funktionen beritstellt und alle Komponenten zusammenführt. Mit Haystack wurden diverse Pipelines aufgebaut, um die Dokumente einem pre-processing zu unterziehen, diese aufzuteilen und mithilfe eines LLMs in Vektrorepräsentationen umzuwandeln. Zusätzlich bietet Haystack Schnitstellen zu Vektordatenbanken sodass diese leicht befüllt und durchsucht werden können.
Gradio #
Um die Anwendung zu bedienen wurde eine intuitive Benutzeroberfläche mit Gradio eingesetzt. Hiermit wird es den Nutzern ermöglicht Anfragen zu stellen, Antworten zu erhalten und Fragen/Antworten zu bewerten. Das Backend zur Verwaltung der Anfrangen und der Durchsuchung der Vektrordatenbank wurde passend dazu mit FastAPI und Uvicorn als ASGI-Server realisiert.
Qdrant Vektordatenbank #
Um die Dokumente effizient durchsuchen zu können, wurden die Inhalte in der Open-Source Qdrant Vektordatenbank gespeichert. Die Vektordatenbank ermöglichte eine schnelle und präzise Suche, indem sie die Einbettungen der Dokumente speicherte und abfragbar machte. Und liefert zusätzlich ein eigenes Frontend mit, in dem der Zustand der Vektordatenbank überprüft, bzw. über welches die Datenbank verwaltet werden kann.
Large Language Models (LLMs) #
Für die erstellung der Text-/Dokumentenembeddings, sowie Antwortgenerierung wurden verschiedene LLMs wie Phi und llama3 genutzt, bereitgestellt durch Ollama. Diese Modelle wurden in einem Docker-Containern bereitgestellt, um eine einfache und skalierbare Anwendung zu ermöglichen.
AWS #
Für die Bereitstellung der Anwendung wurde das gesamte System als Docker-Compose (Frontend, Backend, Vektordatenbank und LLM) in der AWS deployt. Die Infrastruktur ermöglicht einen leichten Zugang zu leistungsfähigen GPU-Ressourcen, sowie leichte Skalierbarkeit.
Fazit #
Die entwickelte Anwendung zeigt, wie Retrieval Augmented Generation die Möglichkeiten von LLMs durch die Anreicherung mit firmeninternen Daten erweitern kann. Durch den Einsatz moderner Technologien wie Haystack, Gradio, Qdrant, und Docker wurde eine skalierbare und benutzerfreundliche Lösung geschaffen, die Unternehmen bei der automatisierten Beantwortung von Anfragen unterstützt.
Demo #
Wenn Sie an einer maßgeschneiderten Lösung für Ihr Unternehmen interessiert sind oder die Anwendung live in Aktion sehen möchten, biete ich Ihnen gerne eine persönliche Demonstration an. Kontaktieren Sie mich gerne, um einen Termin zu buchen. Zusammen können wir Ihre firmeninternen Daten aufbereiten und Ihren Mitarbeitern oder Kunden effizient anbieten.
Vereinbaren Sie jetzt einen Termin!Tätigkeiten #
- Entwicklung eines RAG in Python
- Implementation diverser Pipelines mit Haystack
- Integration und Deployment diverser LLMs (Llama, Phi) mit Ollama
- Entwicklung eines Frontends mit Gradio, FastAPI und Uvicorn
- Entwicklung einer Frontend/Backend Architektur
- Verwaltung von Dokumenten in einer Qdrant Vektordatenbank
- Bereitstellung der gesamten Anwendung als Docker-Compose in der AWS